/**
 * Created by zhangwei on 16/4/5.
 */

window.ysdq = window.ysdq || {};

(function (g) {

    var TEMPLATE = '<div id="titleArea" class="regionDiv titleBg"><p class="title">中国地域</p></div>' +
        '<div id="topSelectorContainer" class="regionDiv topContainer"></div>' +
        //'<div><a id="detailBtn" class="regionBtn" href="javascript:void(0)">显示详情</a></div>' +
        '<div id="detailContainer">' +
        '<div  class="regionDiv"><p class="regionName">华北地区</p><div id="northSelectorContainer" class="provinceDiv"></div></div>' +
        '<div  class="regionDiv"><p class="regionName">东北地区</p><div id="northEastSelectorContainer" class="provinceDiv"></div></div>' +
        '<div  class="regionDiv"><p class="regionName">华东地区</p><div id="eastSelectorContainer" class="provinceDiv"></div></div>' +
        '<div  class="regionDiv"><p class="regionName">华中地区</p><div id="middleSelectorContainer" class="provinceDiv"></div></div>' +
        '<div  class="regionDiv"><p class="regionName">华南地区</p><div id="southSelectorContainer" class="provinceDiv"></div></div>' +
        '<div  class="regionDiv"><p class="regionName">西南地区</p><div id="southWestSelectorContainer" class="provinceDiv"></div></div>' +
        '<div  class="regionDiv"><p class="regionName">西北地区</p><div id="northWestSelectorContainer" class="provinceDiv"></div></div>' +
        '<div  class="regionDiv"><p class="regionName">非大陆地区</p><div id="noMainlandSelectorContainer" class="provinceDiv"></div></div>' +
        '</div>';

    var topChooser = [
        {'name': '全国', 'code': 'all', 'relatedCities': ['all']},
        {
            'name': '一级城市',
            'code': 'level1Cities',
            'relatedCities': ['CN_1_5_1', 'CN_2_36_1', 'CN_9_126_1', 'CN_19_248_1', 'CN_19_246_1']
        },
        {
            'name': '二级城市',
            'code': 'level2Cities',
            'relatedCities': ['CN_3_37_2', 'CN_3_38_2', 'CN_4_48_2', 'CN_6_71_2', 'CN_6_72_2', 'CN_7_85_2', 'CN_8_94_2', 'CN_10_128_2', 'CN_10_131_2', 'CN_10_127_2', 'CN_11_140_2', 'CN_11_141_2', 'CN_11_142_2', 'CN_12_151_2', 'CN_13_167_2', 'CN_13_168_2', 'CN_14_176_2', 'CN_15_187_2', 'CN_15_188_2', 'CN_15_186_2', 'CN_15_191_2', 'CN_16_203_2', 'CN_17_220_2', 'CN_18_232_1', 'CN_19_251_2', 'CN_19_262_2', 'CN_20_276_2', 'CN_22_758_2', 'CN_23_323_2', 'CN_25_353_2', 'CN_27_376_1']
        },
        {
            'name': '三级城市',
            'code': 'level3Cities',
            'relatedCities': ['CN_3_42_3', 'CN_3_40_3', 'CN_3_45_3', 'CN_3_46_3', 'CN_5_59_3', 'CN_5_60_3', 'CN_5_33_3', 'CN_6_73_3', 'CN_7_86_3', 'CN_8_99_3', 'CN_10_130_3', 'CN_10_135_3', 'CN_10_538_3', 'CN_10_138_3', 'CN_10_136_3', 'CN_10_129_3', 'CN_10_132_3', 'CN_10_137_3', 'CN_10_805_3', 'CN_10_806_3', 'CN_10_807_3', 'CN_11_145_3', 'CN_11_143_3', 'CN_11_146_3', 'CN_11_149_3', 'CN_11_810_3', 'CN_12_152_3', 'CN_13_172_3', 'CN_13_171_3', 'CN_15_194_3', 'CN_15_199_3', 'CN_15_192_3', 'CN_15_190_3', 'CN_15_195_3', 'CN_15_200_3', 'CN_15_193_3', 'CN_15_198_3', 'CN_15_201_3', 'CN_15_590_3', 'CN_16_205_3', 'CN_16_215_3', 'CN_17_223_3', 'CN_17_800_3', 'CN_18_237_3', 'CN_18_238_3', 'CN_19_253_3', 'CN_19_263_3', 'CN_19_256_3', 'CN_19_249_3', 'CN_19_254_3', 'CN_19_252_3', 'CN_20_277_3', 'CN_21_281_3', 'CN_23_328_3', 'CN_24_344_3', 'CN_27_385_3', 'CN_27_378_3', 'CN_28_386_3', 'CN_29_400_3', 'CN_30_408_3']
        },
        {
            'name': '四级城市',
            'code': 'level4Cities',
            'relatedCities': ['CN_3_39_4', 'CN_3_44_4', 'CN_3_47_4', 'CN_3_43_4', 'CN_3_41_4', 'CN_4_56_4', 'CN_4_49_4', 'CN_4_52_4', 'CN_4_57_4', 'CN_4_55_4', 'CN_4_53_4', 'CN_4_58_4', 'CN_4_51_4', 'CN_5_32_4', 'CN_5_62_4', 'CN_5_31_4', 'CN_6_76_4', 'CN_6_81_4', 'CN_6_74_4', 'CN_6_77_4', 'CN_6_82_4', 'CN_6_75_4', 'CN_6_80_4', 'CN_6_78_4', 'CN_6_83_4', 'CN_7_91_4', 'CN_7_89_4', 'CN_7_87_4', 'CN_8_103_4', 'CN_8_95_4', 'CN_8_105_4', 'CN_10_133_4', 'CN_10_139_4', 'CN_11_144_4', 'CN_11_147_4', 'CN_12_162_4', 'CN_12_155_4', 'CN_12_160_4', 'CN_12_153_4', 'CN_12_158_4', 'CN_12_163_4', 'CN_12_161_4', 'CN_13_170_4', 'CN_13_175_4', 'CN_13_173_4', 'CN_13_169_4', 'CN_13_174_4', 'CN_14_184_4', 'CN_14_440_4', 'CN_14_182_4', 'CN_14_181_4', 'CN_14_179_4', 'CN_15_189_4', 'CN_15_196_4', 'CN_16_216_4', 'CN_16_204_4', 'CN_16_209_4', 'CN_16_214_4', 'CN_16_219_4', 'CN_16_207_4', 'CN_16_212_4', 'CN_16_217_4', 'CN_16_210_4', 'CN_16_218_4', 'CN_16_206_4', 'CN_16_211_4', 'CN_17_221_4', 'CN_17_226_4', 'CN_17_229_4', 'CN_17_222_4', 'CN_17_227_4', 'CN_17_228_4', 'CN_18_236_4', 'CN_18_241_4', 'CN_18_234_4', 'CN_18_244_4', 'CN_18_242_4', 'CN_18_240_4', 'CN_18_233_4', 'CN_18_243_4', 'CN_19_261_4', 'CN_19_247_4', 'CN_19_250_4', 'CN_19_255_4', 'CN_19_260_4', 'CN_19_265_4', 'CN_20_269_4', 'CN_20_275_4', 'CN_23_327_4', 'CN_23_332_4', 'CN_23_325_4', 'CN_23_333_4', 'CN_23_688_4', 'CN_23_343_4', 'CN_23_326_4', 'CN_23_331_4', 'CN_23_324_4', 'CN_23_334_4', 'CN_23_793_4', 'CN_24_349_4', 'CN_24_346_4', 'CN_25_354_4', 'CN_25_355_4', 'CN_27_381_4', 'CN_27_379_4', 'CN_27_380_4']
        },
        {
            'name': '五级城市',
            'code': 'level5Cities',
            'relatedCities': ['CN_10_808_5', 'CN_10_809_5', 'CN_11_811_5', 'CN_11_812_5', 'CN_11_813_5', 'CN_11_814_5', 'CN_11_815_5', 'CN_13_801_5', 'CN_18_799_5', 'CN_19_795_5', 'CN_19_796_5', 'CN_19_797_5', 'CN_19_798_5', 'CN_20_271_5', 'CN_20_279_5', 'CN_23_337_5', 'CN_23_330_5', 'CN_23_335_5', 'CN_23_341_5', 'CN_23_329_5', 'CN_23_794_5', 'CN_25_766_5', 'CN_25_365_5', 'CN_25_772_5', 'CN_25_363_5', 'CN_25_356_5', 'CN_26_369_5', 'CN_28_392_5', 'CN_28_390_5', 'CN_28_387_5', 'CN_28_393_5', 'CN_28_391_5', 'CN_30_409_5', 'CN_30_410_5', 'CN_31_788_5', 'CN_31_419_5', 'CN_31_415_5', 'CN_31_413_5', 'CN_31_421_5', 'CN_31_802_5', 'CN_31_803_5', 'CN_31_804_5', 'CN_4_54_5', 'CN_4_50_5', 'CN_5_61_5', 'CN_5_34_5', 'CN_5_66_5', 'CN_5_64_5', 'CN_5_35_5', 'CN_5_70_5', 'CN_6_79_5', 'CN_6_84_5', 'CN_7_88_5', 'CN_7_93_5', 'CN_7_774_5', 'CN_7_92_5', 'CN_7_90_5', 'CN_8_98_5', 'CN_8_96_5', 'CN_8_101_5', 'CN_8_106_5', 'CN_8_104_5', 'CN_8_97_5', 'CN_8_102_5', 'CN_8_100_5', 'CN_11_150_5', 'CN_11_148_5', 'CN_12_157_5', 'CN_12_165_5', 'CN_12_561_5', 'CN_12_156_5', 'CN_12_166_5', 'CN_12_439_5', 'CN_12_154_5', 'CN_12_159_5', 'CN_14_177_5', 'CN_14_180_5', 'CN_14_185_5', 'CN_14_178_5', 'CN_14_447_5', 'CN_15_197_5', 'CN_16_608_5', 'CN_16_208_5', 'CN_16_213_5', 'CN_17_231_5', 'CN_17_224_5', 'CN_17_446_5', 'CN_17_225_5', 'CN_17_230_5', 'CN_17_621_5', 'CN_17_792_5', 'CN_17_775_5', 'CN_18_776_5', 'CN_18_239_5', 'CN_18_235_5', 'CN_18_245_5', 'CN_19_258_5', 'CN_19_266_5', 'CN_19_259_5', 'CN_19_264_5', 'CN_19_757_5', 'CN_19_257_5', 'CN_20_280_5', 'CN_20_273_5', 'CN_20_278_5', 'CN_20_441_5', 'CN_20_274_5', 'CN_20_272_5', 'CN_20_442_5', 'CN_20_270_5', 'CN_21_673_5', 'CN_21_282_5', 'CN_21_283_5', 'CN_23_761_5', 'CN_23_342_5', 'CN_23_759_5', 'CN_23_340_5', 'CN_23_338_5', 'CN_23_760_5', 'CN_23_339_5', 'CN_24_347_5', 'CN_24_352_5', 'CN_24_764_5', 'CN_24_345_5', 'CN_24_350_5', 'CN_24_762_5', 'CN_24_348_5', 'CN_24_351_5', 'CN_24_763_5', 'CN_25_768_5', 'CN_25_773_5', 'CN_25_359_5', 'CN_25_364_5', 'CN_25_771_5', 'CN_25_357_5', 'CN_25_362_5', 'v', 'CN_25_769_5', 'CN_25_360_5', 'CN_25_767_5', 'CN_25_358_5', 'CN_25_368_5', 'CN_25_368_5', 'CN_25_765_5', 'CN_25_770_5', 'CN_25_366_5', 'CN_25_719_5', 'CN_26_374_5', 'CN_26_372_5', 'CN_26_370_5', 'CN_26_375_5', 'CN_26_373_5', 'CN_26_371_5', 'CN_27_384_5', 'CN_27_377_5', 'CN_27_382_5', 'CN_27_383_5', 'CN_28_778_5', 'CN_28_397_5', 'CN_28_395_5', 'CN_28_779_5', 'CN_28_398_5', 'CN_28_777_5', 'CN_28_396_5', 'CN_28_389_5', 'CN_28_394_5', 'CN_28_399_5', 'CN_29_783_5', 'CN_29_402_5', 'CN_29_407_5', 'CN_29_781_5', 'CN_29_405_5', 'CN_29_784_5', 'CN_29_403_5', 'CN_29_782_5', 'CN_29_401_5', 'CN_29_406_5', 'CN_29_780_5', 'CN_29_785_5', 'CN_29_404_5', 'CN_30_722_5', 'CN_30_411_5', 'CN_31_733_5', 'CN_31_414_5', 'CN_31_422_5', 'CN_31_731_5', 'CN_31_412_5', 'CN_31_426_5', 'CN_31_786_5', 'CN_31_791_5', 'CN_31_424_5', 'CN_31_789_5', 'CN_31_732_5', 'CN_31_787_5', 'CN_31_725_5', 'CN_31_416_5', 'CN_31_425_5', 'CN_31_790_5', 'CN_25_367_5']
        },
        {
            'name': '旅游城市',
            'code': 'tourismCities',
            'relatedCities': ['CN_22_758_2', 'CN_23_323_2', 'CN_23_761', 'CN_23_793_4', 'CN_10_128_2', 'CN_10_127_2', 'CN_10_131_2', 'CN_17_220_2', 'CN_21_282_5', 'CN_21_281_3', 'CN_21_283_5', 'CN_25_365_5', 'CN_25_766_5', 'CN_25_767_5', 'CN_25_353_2', 'CN_25_770_5', 'CN_20_269_4', 'CN_11_141_2', 'CN_11_142_2', 'CN_11_145_3', 'CN_11_144_4', 'CN_11_143_3', 'CN_11_146_3', 'CN_11_147_4', 'CN_11_149_3', 'CN_11_150_5', 'CN_11_148_5', 'CN_1_5_1', 'CN_9_126_1', 'CN_19_248_1', 'CN_19_246_1', 'CN_27_376_1', 'CN_18_232_1', 'CN_11_140_2', 'CN_2_36_1', 'CN_23_761_5']
        },
        {
            'name': '再上线城市',
            'code': 'reOnlineCities',
            'relatedCities': ['CN_11_140_2', 'CN_11_141_2', 'CN_11_142_2', 'CN_11_145_3', 'CN_11_144_4', 'CN_11_143_3', 'CN_11_146_3', 'CN_11_147_4', 'CN_11_149_3', 'CN_11_150_5', 'CN_11_148_5']
        }
    ];
    //华北
    var northChina = [
        {'name': '北京', 'code': '10000', cities: ['CN_1_5_1', 'CN_66_999_1']},
        {'name': '天津', 'code': '10001', cities: ['CN_2_36_1']},
        {
            'name': '河北',
            'code': '10002',
            cities: ['CN_3_37_2', 'CN_3_38_2', 'CN_3_39_4', 'CN_3_40_3', 'CN_3_41_4', 'CN_3_42_3', 'CN_3_43_4', 'CN_3_44_4', 'CN_3_45_3', 'CN_3_46_3', 'CN_3_47_4']
        },
        {
            'name': '山西',
            'code': '10003',
            cities: ['CN_4_48_2', 'CN_4_49_4', 'CN_4_50_5', 'CN_4_51_4', 'CN_4_52_4', 'CN_4_53_4', 'CN_4_56_4', 'CN_4_58_4', 'CN_4_54_5', 'CN_4_57_4', 'CN_4_55_4']
        },
        {
            'name': '内蒙古',
            'code': '10004',
            cities: ['CN_5_59_3', 'CN_5_60_3', 'CN_5_61_5', 'CN_5_62_4', 'CN_5_31_4', 'CN_5_33_3', 'CN_5_32_4', 'CN_5_35_5', 'CN_5_34_5', 'CN_8_106_5', 'CN_5_66_5', 'CN_5_70_5']
        }
    ];
    //东北
    var northEastChina = [
        {
            'name': '黑龙江',
            'code': '10005',
            cities: ['CN_8_94_2', 'CN_8_95_4', 'CN_8_96_5', 'CN_8_97_5', 'CN_8_98_5', 'CN_8_99_3', 'CN_8_100_5', 'CN_8_101_5', 'CN_8_102_5', 'CN_8_103_4', 'CN_8_104_5', 'CN_8_105_4', 'CN_8_106_5']
        },
        {
            'name': '辽宁',
            'code': '10006',
            cities: ['CN_6_71_2', 'CN_6_72_2', 'CN_6_73_3', 'CN_6_74_4', 'CN_6_75_4', 'CN_6_76_4', 'CN_6_77_4', 'CN_6_78_4', 'CN_6_79_5', 'CN_6_80_4', 'CN_6_81_4', 'CN_6_82_4', 'CN_6_83_4', 'CN_6_84_5']
        },
        {
            'name': '吉林',
            'code': '10007',
            cities: ['CN_7_85_2', 'CN_7_86_3', 'CN_7_87_4', 'CN_7_88_5', 'CN_7_89_4', 'CN_7_90_5', 'CN_7_91_4', 'CN_7_92_5', 'CN_7_93_5']
        }
    ];
    //华东
    var eastChina = [
        {'name': '上海', 'code': '10008', cities: ['CN_9_126_1']},
        {
            'name': '山东',
            'code': '10009',
            cities: ['CN_15_186_2', 'CN_15_187_2', 'CN_15_188_2', 'CN_15_189_4', 'CN_15_190_3', 'CN_15_191_2', 'CN_15_192_3', 'CN_15_195_3', 'CN_15_193_3', 'CN_15_194_3', 'CN_15_196_4', 'CN_15_197_5', 'CN_15_198_3', 'CN_15_199_3', 'CN_15_200_3', 'CN_15_201_3', 'CN_15_590_3']
        },
        {
            'name': '浙江',
            'code': '10010',
            cities: ['CN_11_140_2', 'CN_11_141_2', 'CN_11_142_2', 'CN_11_143_3', 'CN_11_144_4', 'CN_11_145_3', 'CN_11_146_3', 'CN_11_147_4', 'CN_11_148_5', 'CN_11_149_3', 'CN_11_150_5']
        },
        {
            'name': '江苏',
            'code': '10011',
            cities: ['CN_10_127_2', 'CN_10_128_2', 'CN_10_129_3', 'CN_10_130_3', 'CN_10_131_2', 'CN_10_132_3', 'CN_10_133_4', 'CN_10_538_3', 'CN_10_135_3', 'CN_10_136_3', 'CN_10_137_3', 'CN_10_138_3', 'CN_10_139_4']
        },
        {
            'name': '安徽',
            'code': '10012',
            cities: ['CN_12_151_2', 'CN_12_152_3', 'CN_12_153_4', 'CN_12_154_5', 'CN_12_155_4', 'CN_12_156_5', 'CN_12_157_5', 'CN_12_158_4', 'CN_12_159_5', 'CN_12_160_4', 'CN_12_161_4', 'CN_12_162_4', 'CN_12_165_5', 'CN_12_163_4', 'CN_12_561_5', 'CN_12_166_5', 'CN_12_439_5']
        },
        {
            'name': '福建',
            'code': '10013',
            cities: ['CN_13_167_2', 'CN_13_168_2', 'CN_13_169_4', 'CN_13_170_4', 'CN_13_171_3', 'CN_13_172_3', 'CN_13_173_4', 'CN_13_174_4', 'CN_13_175_4']
        },

    ];

    //华中
    var middleChina = [
        {
            'name': '湖北',
            'code': '10014',
            cities: ['CN_17_220_2', 'CN_17_221_4', 'CN_17_224_5', 'CN_17_222_4', 'CN_17_228_4', 'CN_17_223_3', 'CN_17_226_4', 'CN_17_225_5', 'CN_17_227_4', 'CN_17_229_4', 'CN_17_230_5', 'CN_17_446_5', 'CN_17_775_5']
        },
        {
            'name': '湖南',
            'code': '10015',
            cities: ['CN_18_232_1', 'CN_18_233_4', 'CN_18_234_4', 'CN_18_235_5', 'CN_18_236_4', 'CN_18_237_3', 'CN_18_238_3', 'CN_18_239_5', 'CN_18_240_4', 'CN_18_241_4', 'CN_18_242_4', 'CN_18_243_4', 'CN_18_244_4', 'CN_18_776_5']
        },
        {
            'name': '河南',
            'code': '10016',
            cities: ['CN_16_203_2', 'CN_16_204_4', 'CN_16_205_3', 'CN_16_206_4', 'CN_16_210_4', 'CN_16_208_5', 'CN_16_209_4', 'CN_16_207_4', 'CN_16_211_4', 'CN_16_212_4', 'CN_16_213_5', 'CN_16_214_4', 'CN_16_215_3', 'CN_16_216_4', 'CN_16_217_4', 'CN_16_218_4', 'CN_16_219_4']
        },
        {
            'name': '江西',
            'code': '10017',
            cities: ['CN_14_176_2', 'CN_14_177_5', 'CN_14_178_5', 'CN_14_179_4', 'CN_14_180_5', 'CN_14_447_5', 'CN_14_181_4', 'CN_14_184_4', 'CN_14_182_4', 'CN_14_185_5', 'CN_14_440_4']
        },
    ];

    //华南
    var southChina = [
        {
            'name': '广东',
            'code': '10018',
            cities: ['CN_19_246_1', 'CN_19_248_1', 'CN_19_249_3', 'CN_19_250_4', 'CN_19_247_4', 'CN_19_251_2', 'CN_19_252_3', 'CN_19_253_3', 'CN_19_254_3', 'CN_19_255_4', 'CN_19_256_3', 'CN_19_257_5', 'CN_19_258_5', 'CN_19_259_5', 'CN_19_260_4', 'CN_19_261_4', 'CN_19_262_2', 'CN_19_263_3', 'CN_19_264_5', 'CN_19_265_4', 'CN_19_266_5']
        },
        {
            'name': '广西',
            'code': '10019',
            cities: ['CN_20_276_2', 'CN_20_277_3', 'CN_20_269_4', 'CN_20_270_5', 'CN_20_271_5', 'CN_20_272_5', 'CN_20_273_5', 'CN_20_274_5', 'CN_20_275_4', 'CN_20_279_5', 'CN_20_278_5', 'CN_20_280_5', 'CN_20_441_5', 'CN_20_442_5']
        },
        {'name': '海南', 'code': '10020', cities: ['CN_21_281_3', 'CN_21_282_5', 'CN_21_283_5']}
    ];

    //西南
    var southWestChina = [
        {'name': '重庆', 'code': '10021', cities: ['CN_22_758_2']},
        {
            'name': '四川',
            'code': '10022',
            cities: ['CN_23_323_2', 'CN_23_324_4', 'CN_23_325_4', 'CN_23_326_4', 'CN_23_327_4', 'CN_23_328_3', 'CN_23_329_5', 'CN_23_330_5', 'CN_23_331_4', 'CN_23_332_4', 'CN_23_333_4', 'CN_23_334_4', 'CN_23_335_5', 'CN_23_688_4', 'CN_23_342_5', 'CN_23_337_5', 'CN_23_341_5', 'CN_23_343_4', 'CN_23_338_5', 'CN_23_760_5', 'CN_23_340_5', 'CN_23_761_5', 'CN_23_793_4']
        },
        {
            'name': '云南',
            'code': '10023',
            cities: ['CN_25_353_2', 'CN_25_354_4', 'CN_25_355_4', 'CN_25_363_5', 'CN_25_356_5', 'CN_25_365_5', 'CN_25_772_5', 'CN_25_368_5', 'CN_25_771_5', 'CN_25_358_5', 'CN_25_767_5', 'CN_25_357_5', 'CN_25_766_5', 'CN_25_364_5', 'CN_25_366_5', 'CN_25_367_5', 'CN_25_770_5']
        },
        {
            'name': '贵州',
            'code': '10024',
            cities: ['CN_24_344_3', 'CN_24_345_5', 'CN_24_346_4', 'CN_24_350_5', 'CN_24_347_5', 'CN_24_349_4', 'CN_24_764_5', 'CN_24_763_5', 'CN_24_762_5']
        },
        {
            'name': '西藏',
            'code': '10025',
            cities: ['CN_26_369_5', 'CN_26_370_5', 'CN_26_371_5', 'CN_26_372_5', 'CN_26_373_5', 'CN_26_374_5', 'CN_26_375_5']
        }
    ];

    //西北
    var northWestChina = [
        {
            'name': '甘肃',
            'code': '10026',
            cities: ['CN_28_386_3', 'CN_28_387_5', 'CN_28_779_5', 'CN_28_389_5', 'CN_28_390_5', 'CN_28_393_5', 'CN_28_392_5', 'CN_28_396_5', 'CN_28_391_5', 'CN_28_397_5', 'CN_28_394_5', 'CN_28_395_5', 'CN_28_398_5', 'CN_28_399_5']
        },
        {
            'name': '宁夏',
            'code': '10027',
            cities: ['CN_30_408_3', 'CN_30_409_5', 'CN_30_410_5', 'CN_30_411_5', 'CN_30_722_5']
        },
        {
            'name': '青海',
            'code': '10028',
            cities: ['CN_29_400_3', 'CN_29_401_5', 'CN_29_402_5', 'CN_29_784_5', 'CN_29_785_5', 'CN_29_405_5', 'CN_29_782_5', 'CN_29_407_5']
        },
        {
            'name': '陕西',
            'code': '10029',
            cities: ['CN_27_376_1', 'CN_27_377_5', 'CN_27_378_3', 'CN_27_379_4', 'CN_27_380_4', 'CN_27_381_4', 'CN_27_382_5', 'CN_27_385_3', 'CN_27_383_5', 'CN_27_384_5']
        },
        {
            'name': '新疆',
            'code': '10030',
            cities: ['CN_31_412_5', 'CN_31_413_5', 'CN_31_414_5', 'CN_31_415_5', 'CN_31_422_5', 'CN_31_419_5', 'CN_31_421_5', 'CN_31_786_5', 'CN_31_789_5', 'CN_31_788_5', 'CN_31_787_5', 'CN_31_790_5', 'CN_31_425_5', 'CN_31_426_5']
        },
    ];

    //非大陆
    var noMainlandChina = [
        {'name': '香港', 'code': '10031', cities: []},
        {'name': '澳门', 'code': '10032', cities: []},
        {'name': '台湾', 'code': '10033', cities: []}
    ];

    // province need to be handle specially
    var leftShowProvince = ['10030'];

    var cities = {
        'CN_1_5_1': '北京',
        'CN_66_999_1': '定位失败',
        'CN_9_126_1': '上海',
        'CN_2_36_1': '天津',
        'CN_22_758_2': ' 重庆',
        'CN_3_37_2': '石家庄',
        'CN_3_38_2': '唐山',
        'CN_3_39_4': '秦皇岛',
        'CN_3_40_3': '邯郸',
        'CN_3_41_4': '邢台',
        'CN_3_42_3': '保定',
        'CN_3_43_4': '张家口',
        'CN_3_44_4': '承德',
        'CN_3_45_3': '沧州',
        'CN_3_46_3': '廊坊',
        'CN_3_47_4': '衡水',
        'CN_4_48_2': '太原',
        'CN_4_49_4': '大同',
        'CN_4_50_5': '阳泉',
        'CN_4_51_4': '长治',
        'CN_4_52_4': '晋城',
        'CN_4_53_4': '朔州',
        'CN_4_56_4': '晋中',
        'CN_4_58_4': '运城',
        'CN_4_54_5': '忻州',
        'CN_4_57_4': '临汾',
        'CN_4_55_4': '吕梁',
        'CN_5_59_3': '呼和浩特',
        'CN_5_60_3': '包头',
        'CN_5_61_5': '乌海',
        'CN_5_62_4': '赤峰',
        'CN_5_31_4': '通辽',
        'CN_5_33_3': '鄂尔多斯',
        'CN_5_32_4': '呼伦贝尔',
        'CN_5_35_5': '巴彦淖尔',
        'CN_5_34_5': '乌兰察布',
        'CN_5_64_5': '兴安',
        'CN_5_66_5': '锡林郭勒',
        'CN_5_70_5': '阿拉善',
        'CN_6_71_2': '沈阳',
        'CN_6_72_2': '大连',
        'CN_6_73_3': '鞍山',
        'CN_6_74_4': '抚顺',
        'CN_6_75_4': '本溪',
        'CN_6_76_4': '丹东',
        'CN_6_77_4': '锦州',
        'CN_6_78_4': '营口',
        'CN_6_79_5': '阜新',
        'CN_6_80_4': '辽阳',
        'CN_6_81_4': '盘锦',
        'CN_6_82_4': '铁岭',
        'CN_6_83_4': '朝阳',
        'CN_6_84_5': '葫芦岛',
        'CN_7_85_2': '长春',
        'CN_7_86_3': '吉林',
        'CN_7_87_4': '四平',
        'CN_7_88_5': '辽源',
        'CN_7_89_4': '通化',
        'CN_7_90_5': '白山',
        'CN_7_91_4': '松原',
        'CN_7_92_5': '白城',
        'CN_7_93_5': '延边',
        'CN_8_94_2': '哈尔滨',
        'CN_8_95_4': '齐齐哈尔',
        'CN_8_96_5': '鸡西',
        'CN_8_97_5': '鹤岗',
        'CN_8_98_5': '双鸭山',
        'CN_8_99_3': '大庆',
        'CN_8_100_5': '伊春',
        'CN_8_101_5': '佳木斯',
        'CN_8_102_5': '七台河',
        'CN_8_103_4': '牡丹江',
        'CN_8_104_5': '黑河',
        'CN_8_105_4': '绥化',
        'CN_8_106_5': '大兴安岭',
        'CN_10_127_2': '南京',
        'CN_10_128_2': '无锡',
        'CN_10_129_3': '徐州',
        'CN_10_130_3': '常州',
        'CN_10_131_2': '苏州',
        'CN_10_132_3': '南通',
        'CN_10_133_4': '连云港',
        'CN_10_538_3': '淮安',
        'CN_10_135_3': '盐城',
        'CN_10_136_3': '扬州',
        'CN_10_137_3': '镇江',
        'CN_10_138_3': '泰州',
        'CN_10_139_4': '宿迁',
        'CN_11_140_2': '杭州',
        'CN_11_141_2': '宁波',
        'CN_11_142_2': '温州',
        'CN_11_143_3': '嘉兴',
        'CN_11_144_4': '湖州',
        'CN_11_145_3': '绍兴',
        'CN_11_146_3': '金华',
        'CN_11_147_4': '衢州',
        'CN_11_148_5': '舟山',
        'CN_11_149_3': '台州',
        'CN_11_150_5': '丽水',
        'CN_12_151_2': '合肥',
        'CN_12_152_3': '芜湖',
        'CN_12_153_4': '蚌埠',
        'CN_12_154_5': '淮南',
        'CN_12_155_4': '马鞍山',
        'CN_12_156_5': '淮北',
        'CN_12_157_5': '铜陵',
        'CN_12_158_4': '安庆',
        'CN_12_159_5': '黄山',
        'CN_12_160_4': '滁州',
        'CN_12_161_4': '阜阳',
        'CN_12_162_4': '宿州',
        'CN_12_165_5': '巢湖',
        'CN_12_163_4': '六安',
        'CN_12_561_5': '亳州',
        'CN_12_166_5': '池州',
        'CN_12_439_5': '宣城',
        'CN_13_167_2': '福州',
        'CN_13_168_2': '厦门',
        'CN_13_169_4': '莆田',
        'CN_13_170_4': '三明',
        'CN_13_171_3': '泉州',
        'CN_13_172_3': '漳州',
        'CN_13_173_4': '南平',
        'CN_13_174_4': '龙岩',
        'CN_13_175_4': '宁德',
        'CN_14_176_2': '南昌',
        'CN_14_177_5': '景德镇',
        'CN_14_178_5': '萍乡',
        'CN_14_179_4': '九江',
        'CN_14_180_5': '新余',
        'CN_14_447_5': '鹰潭',
        'CN_14_181_4': '赣州',
        'CN_14_184_4': '吉安',
        'CN_14_182_4': '宜春',
        'CN_14_185_5': '抚州',
        'CN_14_440_4': '上饶',
        'CN_15_186_2': '济南',
        'CN_15_187_2': '青岛',
        'CN_15_188_2': '淄博',
        'CN_15_189_4': '枣庄',
        'CN_15_190_3': '东营',
        'CN_15_191_2': '烟台',
        'CN_15_192_3': '潍坊',
        'CN_15_195_3': '威海',
        'CN_15_193_3': '济宁',
        'CN_15_194_3': '泰安',
        'CN_15_196_4': '日照',
        'CN_15_197_5': '莱芜',
        'CN_15_198_3': '临沂',
        'CN_15_199_3': '德州',
        'CN_15_200_3': '聊城',
        'CN_15_201_3': '滨州',
        'CN_15_590_3': '菏泽',
        'CN_16_203_2': '郑州',
        'CN_16_204_4': '开封',
        'CN_16_205_3': '洛阳',
        'CN_16_206_4': '平顶山',
        'CN_16_210_4': '焦作',
        'CN_16_208_5': '鹤壁',
        'CN_16_209_4': '新乡',
        'CN_16_207_4': '安阳',
        'CN_16_211_4': '濮阳',
        'CN_16_212_4': '许昌',
        'CN_16_213_5': '漯河',
        'CN_16_214_4': '三门峡',
        'CN_16_215_3': '南阳',
        'CN_16_216_4': '商丘',
        'CN_16_217_4': '信阳',
        'CN_16_218_4': '周口',
        'CN_16_219_4': '驻马店',
        'CN_17_220_2': '武汉',
        'CN_17_221_4': '黄石',
        'CN_17_224_5': '襄樊',
        'CN_17_222_4': '十堰',
        'CN_17_228_4': '荆州',
        'CN_17_223_3': '宜昌',
        'CN_17_226_4': '荆门',
        'CN_17_225_5': '鄂州',
        'CN_17_227_4': '孝感',
        'CN_17_229_4': '黄冈',
        'CN_17_230_5': '咸宁',
        'CN_17_446_5': '随州',
        'CN_17_775_5': '恩施',
        'CN_18_232_1': '长沙',
        'CN_18_233_4': '株洲',
        'CN_18_234_4': '湘潭',
        'CN_18_235_5': '衡阳',
        'CN_18_236_4': '邵阳',
        'CN_18_237_3': '岳阳',
        'CN_18_238_3': '常德',
        'CN_18_239_5': '张家界',
        'CN_18_240_4': '益阳',
        'CN_18_241_4': '郴州',
        'CN_18_242_4': '永州',
        'CN_18_243_4': '怀化',
        'CN_18_244_4': '娄底',
        'CN_18_776_5': '湘西',
        'CN_19_246_1': '广州',
        'CN_19_248_1': '深圳',
        'CN_19_249_3': '珠海',
        'CN_19_250_4': '汕头',
        'CN_19_247_4': '韶关',
        'CN_19_251_2': '佛山',
        'CN_19_252_3': '江门',
        'CN_19_253_3': '湛江',
        'CN_19_254_3': '茂名',
        'CN_19_255_4': '肇庆',
        'CN_19_256_3': '惠州',
        'CN_19_257_5': '梅州',
        'CN_19_258_5': '汕尾',
        'CN_19_259_5': '河源',
        'CN_19_260_4': '阳江',
        'CN_19_261_4': '清远',
        'CN_19_262_2': '东莞',
        'CN_19_263_3': '中山',
        'CN_19_264_5': '潮州',
        'CN_19_265_4': '揭阳',
        'CN_19_266_5': '云浮',
        'CN_20_276_2': '南宁',
        'CN_20_277_3': '柳州',
        'CN_20_269_4': '桂林',
        'CN_20_270_5': '梧州',
        'CN_20_271_5': '北海',
        'CN_20_272_5': '防城港',
        'CN_20_273_5': '钦州',
        'CN_20_274_5': '贵港',
        'CN_20_275_4': '玉林',
        'CN_20_279_5': '百色',
        'CN_20_278_5': '贺州',
        'CN_20_280_5': '河池',
        'CN_20_441_5': '来宾',
        'CN_20_442_5': '崇左',
        'CN_21_281_3': '海口',
        'CN_21_282_5': '三亚',
        'CN_21_283_5': '儋州',
        'CN_23_323_2': '成都',
        'CN_23_324_4': '自贡',
        'CN_23_325_4': '攀枝花',
        'CN_23_326_4': '泸州',
        'CN_23_327_4': '德阳',
        'CN_23_328_3': '绵阳',
        'CN_23_329_5': '广元',
        'CN_23_330_5': '遂宁',
        'CN_23_331_4': '内江',
        'CN_23_332_4': '乐山',
        'CN_23_333_4': '南充',
        'CN_23_334_4': '宜宾',
        'CN_23_335_5': '广安',
        'CN_23_688_4': '达州',
        'CN_23_342_5': '眉山',
        'CN_23_337_5': '雅安',
        'CN_23_341_5': '巴中',
        'CN_23_343_4': '资阳',
        'CN_23_338_5': '阿坝',
        'CN_23_760_5': '甘孜',
        'CN_23_340_5': '凉山',
        'CN_24_344_3': '贵阳',
        'CN_24_345_5': '六盘水',
        'CN_24_346_4': '遵义',
        'CN_24_350_5': '安顺',
        'CN_24_347_5': '铜仁',
        'CN_24_349_4': '毕节',
        'CN_24_764_5': '黔西南',
        'CN_24_763_5': '黔东南',
        'CN_24_762_5': '黔南',
        'CN_25_353_2': '昆明',
        'CN_25_354_4': '曲靖',
        'CN_25_355_4': '玉溪',
        'CN_25_363_5': '保山',
        'CN_25_356_5': '昭通',
        'CN_25_365_5': '丽江',
        'CN_25_772_5': '普洱',
        'CN_25_368_5': '临沧',
        'CN_25_771_5': '文山',
        'CN_25_358_5': '红河',
        'CN_25_767_5': '西双版纳',
        'CN_25_357_5': '楚雄',
        'CN_25_766_5': '大理',
        'CN_25_364_5': '德宏',
        'CN_25_366_5': '怒江',
        'CN_25_367_5': '迪庆',
        'CN_26_369_5': '拉萨',
        'CN_26_370_5': '昌都',
        'CN_26_371_5': '山南',
        'CN_26_372_5': '日喀则',
        'CN_26_373_5': '那曲',
        'CN_26_374_5': '阿里',
        'CN_26_375_5': '林芝',
        'CN_27_376_1': '西安',
        'CN_27_377_5': '铜川',
        'CN_27_378_3': '宝鸡',
        'CN_27_379_4': '咸阳',
        'CN_27_380_4': '渭南',
        'CN_27_381_4': '延安',
        'CN_27_382_5': '汉中',
        'CN_27_385_3': '榆林',
        'CN_27_383_5': '安康',
        'CN_27_384_5': '商洛',
        'CN_28_386_3': '兰州',
        'CN_28_387_5': '嘉峪关',
        'CN_28_779_5': '金昌',
        'CN_28_389_5': '白银',
        'CN_28_390_5': '天水',
        'CN_28_393_5': '武威',
        'CN_28_392_5': '张掖',
        'CN_28_396_5': '平凉',
        'CN_28_391_5': '酒泉',
        'CN_28_397_5': '庆阳',
        'CN_28_394_5': '定西',
        'CN_28_395_5': '陇南',
        'CN_28_398_5': '临夏',
        'CN_28_399_5': '甘南',
        'CN_29_400_3': '西宁',
        'CN_29_401_5': '海东',
        'CN_29_402_5': '海北',
        'CN_29_784_5': '黄南',
        'CN_29_785_5': '海南',
        'CN_29_405_5': '果洛',
        'CN_29_782_5': '玉树',
        'CN_29_407_5': '海西',
        'CN_30_408_3': '银川',
        'CN_30_409_5': '石嘴山',
        'CN_30_410_5': '吴忠',
        'CN_30_411_5': '固原',
        'CN_30_722_5': '中卫',
        'CN_31_412_5': '乌鲁木齐',
        'CN_31_413_5': '克拉玛依',
        'CN_31_414_5': '吐鲁番',
        'CN_31_415_5': '哈密',
        'CN_31_422_5': '和田',
        'CN_31_419_5': '阿克苏',
        'CN_31_421_5': '喀什',
        'CN_31_786_5': '克孜勒苏柯尔克孜',
        'CN_31_789_5': '巴音郭楞蒙古',
        'CN_31_788_5': '昌吉',
        'CN_31_787_5': '博尔塔拉蒙古',
        'CN_31_790_5': '伊犁哈萨克',
        'CN_31_425_5': '塔城',
        'CN_31_426_5': '阿勒泰',
        'CN_23_761_5': '九寨沟',
        'CN_23_793_4': '都江堰',
        'CN_25_770_5': '香格里拉'
    };

    var RegionSelector = function (divId) {
        this.root = $(divId);

        this.root.empty().append(TEMPLATE);

        this.topSelectors = [];

        this.provinceSelectors = [];

        this.citySelectors = [];

        this.init();
    };

    var p = RegionSelector.prototype;

    p.init = function () {
        var that = this;
        var i;

        $('#detailBtn').on('click', function () {
            $('#detailContainer').toggle();

            var display = $('#detailContainer').css("display");
            console.log('display status ' + display);
            $('#detailBtn').text(display == 'none' ? '显示详情' : '收起详情');
        });

        for (i = 0; i < topChooser.length; i++) {
            var choose = $('#topSelectorContainer').append(this.generateInput(topChooser[i]));
            this.topSelectors.push(choose);
            var pSelector = $('#' + topChooser[i].code);
            pSelector.on('click', function () {
                that.clickTopSelect(this);
            });
        }

        for (i = 0; i < northChina.length; i++) {
            this.generateProvince('#northSelectorContainer', northChina[i]);
        }

        for (i = 0; i < northEastChina.length; i++) {
            this.generateProvince('#northEastSelectorContainer', northEastChina[i]);
        }
        for (i = 0; i < eastChina.length; i++) {
            this.generateProvince('#eastSelectorContainer', eastChina[i]);
        }
        for (i = 0; i < middleChina.length; i++) {
            this.generateProvince('#middleSelectorContainer', middleChina[i]);
        }
        for (i = 0; i < southChina.length; i++) {
            this.generateProvince('#southSelectorContainer', southChina[i]);
        }
        for (i = 0; i < southWestChina.length; i++) {
            this.generateProvince('#southWestSelectorContainer', southWestChina[i]);
        }
        for (i = 0; i < northWestChina.length; i++) {
            this.generateProvince('#northWestSelectorContainer', northWestChina[i]);
        }
        for (i = 0; i < noMainlandChina.length; i++) {
            this.generateProvince('#noMainlandSelectorContainer', noMainlandChina[i]);
        }

    };

    p.generateProvince = function (containerId, province) {
        var that = this;
        var subContainerId = '#' + this.containerId(province.code);

        $(containerId).append(this.generateInput(province));

        var pSelector = $('#' + province.code);
        this.provinceSelectors.push(pSelector);
        pSelector.on('click', function () {
            that.clickProvince(this);
        });

        if (province.cities && province.cities.length > 0) {

            if (that.isInLeftProvince(province.code)) {
                $(subContainerId).append('<div class="subContainer" style="left: -400px;top:-50px;"></div>');
            } else {
                $(subContainerId).append('<div class="subContainer"></div>');
            }

            $(subContainerId).on('mouseover', function () {
                $(this).find('.subContainer').css('display', 'block');
            });

            $(subContainerId).on('mouseleave', function () {
                $(this).find('.subContainer').css('display', 'none');
            });

            for (var j = 0; j < province.cities.length; j++) {
                $(subContainerId).find('.subContainer').append(this.generateCityInput(province.cities[j]));
                $('#' + province.cities[j]).on('click', function () {
                    that.clickCity(this);
                });
                this.citySelectors.push($('#' + province.cities[j]));
            }
        }
    };

    p.isInLeftProvince = function (code) {
        for (var i = 0; i < leftShowProvince.length; i++) {
            if (leftShowProvince[i] == code) {
                return true;
            }
        }

        return false;
    };

    p.containerId = function (code) {
        return code + "Container";
    };

    p.generateInput = function (province) {
        return '<div id="' + this.containerId(province.code) + '" class="province"><input style="margin:auto 2px auto 5px;" name = "area" id="' + province.code + '" type="checkbox"  value="' + province.code + '">' + province.name + '</div>';
    };

    p.generateCityInput = function (city) {
        return '<div id="' + this.containerId(city) + '" class="province"><input style="margin:auto 2px auto 5px;"  name = "area" id="' + city + '" type="checkbox"   value="' + city + '">' + cities[city] + '</div>';
    };

    p.clickProvince = function (p) {

        var inputs = $(p).parent().find('input');

        for (var i = 0; i < inputs.length; i++) {
            $(inputs[i]).prop('checked', $(p).prop('checked'));
        }
        if (!$(p).prop('checked')) {
            $("#allContainer").children("input").attr('checked', false);
        }
    };

    p.clickCity = function (c) {
        var result = $(c).prop('checked');
        var inputArray = ($(c).parent().parent().parent().find('input'));
        if (inputArray && inputArray.length > 0) {
            //如果城市反选
            if (!result) {
                //  $(inputArray[0]).prop('checked', result);
                $("#allContainer").children("input").attr('checked', false);
                for (var i = 1; i < inputArray.length; i++) {
                    if ($(inputArray[i]).prop('checked')) {
                        //shouldSelectAll = false;
                        return;
                    }
                }
                $(inputArray[0]).prop('checked', false);
            } else {
                // 如果城市勾选
                var shouldSelectAll = true;


                if (shouldSelectAll) {
                    $(inputArray[0]).prop('checked', result);
                }
            }
        }
    };

    g.RegionSelector = RegionSelector;

    p.setRegions = function (a) {
        $(".province").each(function () {
            if (a.indexOf($(this).children("input").val()) > -1 || a == '1') {
                $(this).children("input").attr("checked", true);
                $(this).parent().parent().children("input").attr("checked", true);
            } else {
                $("#allContainer").children("input").attr('checked', false);
            }
        });

    };

    p.clickTopSelect = function (p) {
        var result = $(p).prop('checked');
        var i;
        if ($(p).val() == 'all') {
            $(".province").each(function () {
                $(this).children("input").attr("checked", result);
                $(this).parent().parent().children("input").attr("checked", result);
            });
        }
        if ($(p).val() == 'level1Cities') {
            for (i = 0; i < topChooser[1].relatedCities.length; i++) {
                $("#" + topChooser[1].relatedCities[i] + 'Container').children("input").attr('checked', result);

            }
        }
        if ($(p).val() == 'level2Cities') {
            for (i = 0; i < topChooser[2].relatedCities.length; i++) {
                $("#" + topChooser[2].relatedCities[i] + 'Container').children("input").attr('checked', result);
            }
        }
        if ($(p).val() == 'level3Cities') {
            for (i = 0; i < topChooser[3].relatedCities.length; i++) {
                $("#" + topChooser[3].relatedCities[i] + 'Container').children("input").attr('checked', result);
            }
        }
        if ($(p).val() == 'level4Cities') {
            for (i = 0; i < topChooser[4].relatedCities.length; i++) {
                $("#" + topChooser[4].relatedCities[i] + 'Container').children("input").attr('checked', result);
            }
        }
        if ($(p).val() == 'level5Cities') {
            for (i = 0; i < topChooser[5].relatedCities.length; i++) {
                $("#" + topChooser[5].relatedCities[i] + 'Container').children("input").attr('checked', result);
            }
        }
        if ($(p).val() == 'tourismCities') {
            for (i = 0; i < topChooser[6].relatedCities.length; i++) {
                $("#" + topChooser[6].relatedCities[i] + 'Container').children("input").attr('checked', result);
            }
        }
        if ($(p).val() == 'reOnlineCities') {
            for (i = 0; i < topChooser[7].relatedCities.length; i++) {
                $("#" + topChooser[7].relatedCities[i] + 'Container').children("input").attr('checked', result);
            }
        }
        var ss = 0;
        var array = $(".province");
        for (var s = 1; s < array.length - 1; s++) {
            if ($(array[s]).parent().parent().children("input").val() != $(array[s - 1]).parent().parent().children("input").val()) {
                ss = 0;
            }
            if ($(array[s]).children("input").prop('checked')) {
                ss = 1;
                $(array[s]).parent().parent().children("input").attr("checked", true);
            } else {
                if ($(array[s]).parent().parent().children("input").val() != $(array[s + 1]).parent().parent().children("input").val() && ss == 0) {
                    $(array[s]).parent().parent().children("input").attr("checked", false);
                }
                $("#allContainer").children("input").attr('checked', false);

            }
        }
    };
})(window.ysdq);